From 22d70e6bc44860e1a51075fc8c2baaf689c9c033 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sun, 31 Jul 2022 15:48:04 -0600 Subject: [PATCH] change return type of strip_html, strip_nastyhtml to QString. (#900) --- defs.h | 4 ++-- html.cc | 12 ++++++------ osm.cc | 13 ++----------- text.cc | 8 ++------ util.cc | 25 ++++++++++++++----------- vcf.cc | 4 +--- 6 files changed, 27 insertions(+), 39 deletions(-) diff --git a/defs.h b/defs.h index be9cc7fb9..ef58e39fc 100644 --- a/defs.h +++ b/defs.h @@ -1081,8 +1081,8 @@ QString gs_get_cachetype(geocache_type t); QString gs_get_container(geocache_container t); QString xml_entitize(const QString& str); QString html_entitize(const QString& str); -char* strip_html(const utf_string*); -char* strip_nastyhtml(const QString& in); +QString strip_html(const utf_string*); +QString strip_nastyhtml(const QString& in); QString convert_human_date_format(const char* human_datef); /* "MM,YYYY,DD" -> "%m,%Y,%d" */ QString convert_human_time_format(const char* human_timef); /* "HH+mm+ss" -> "%H+%M+%S" */ QString pretty_deg_format(double lat, double lon, char fmt, const char* sep, bool html); /* decimal -> dd.dddd or dd mm.mmm or dd mm ss */ diff --git a/html.cc b/html.cc index ddf0b81c1..254009524 100644 --- a/html.cc +++ b/html.cc @@ -102,14 +102,14 @@ HtmlFormat::html_disp(const Waypoint* wpt) const gbfprintf(file_out, ""); if (!wpt->gc_data->desc_short.utfstring.isEmpty()) { - char* tmpstr = strip_nastyhtml(wpt->gc_data->desc_short.utfstring); - gbfprintf(file_out, "

%s

\n", tmpstr); - xfree(tmpstr); + gbfputs(QStringLiteral("

%1

\n") + .arg(strip_nastyhtml(wpt->gc_data->desc_short.utfstring)), + file_out); } if (!wpt->gc_data->desc_long.utfstring.isEmpty()) { - char* tmpstr = strip_nastyhtml(wpt->gc_data->desc_long.utfstring); - gbfprintf(file_out, "

%s

\n", tmpstr); - xfree(tmpstr); + gbfputs(QStringLiteral("

%1

\n") + .arg(strip_nastyhtml(wpt->gc_data->desc_long.utfstring)), + file_out); } if (!wpt->gc_data->hint.isEmpty()) { QString hint; diff --git a/osm.cc b/osm.cc index b1066117d..b4ba32613 100644 --- a/osm.cc +++ b/osm.cc @@ -406,20 +406,11 @@ OsmFormat::osm_feature_symbol(const int ikey, const char* value) const return result; } -char* -OsmFormat::osm_strip_html(const char* str) -{ - utf_string utf(true, str); - return strip_html(&utf); // util.cc -} - QString OsmFormat::osm_strip_html(const QString& str) { - char* r = osm_strip_html(CSTR(str)); - QString rv(r); - xfree(r); - return rv; + utf_string utf(true, str); + return strip_html(&utf); // util.cc } void diff --git a/text.cc b/text.cc index 42fa2b456..7d40e552d 100644 --- a/text.cc +++ b/text.cc @@ -110,14 +110,10 @@ TextFormat::text_disp(const Waypoint* wpt) .arg((wpt->gc_data->terr%10) ? ".5" : ""), file_out); if (!wpt->gc_data->desc_short.utfstring.isEmpty()) { - char* stripped_html = strip_html(&wpt->gc_data->desc_short); - gbfprintf(file_out, "\n%s\n", stripped_html); - xfree(stripped_html); + gbfputs(QStringLiteral("\n%1\n").arg(strip_html(&wpt->gc_data->desc_short)), file_out); } if (!wpt->gc_data->desc_long.utfstring.isEmpty()) { - char* stripped_html = strip_html(&wpt->gc_data->desc_long); - gbfprintf(file_out, "\n%s\n", stripped_html); - xfree(stripped_html); + gbfputs(QStringLiteral("\n%1\n").arg(strip_html(&wpt->gc_data->desc_long)), file_out); } if (!wpt->gc_data->hint.isEmpty()) { QString hint; diff --git a/util.cc b/util.cc index 41744e2ea..3eb7ab4b6 100644 --- a/util.cc +++ b/util.cc @@ -1167,7 +1167,7 @@ pretty_deg_format(double lat, double lon, char fmt, const char* sep, bool html) * and - stop processing altogether * - stop overriding styles for everything */ -char* +QString strip_nastyhtml(const QString& in) { char* returnstr; @@ -1249,7 +1249,9 @@ strip_nastyhtml(const QString& in) *lcp = '*'; } xfree(lcstr); - return (returnstr); + QString rv(returnstr); + xfree(returnstr); + return rv; } /* @@ -1258,7 +1260,7 @@ strip_nastyhtml(const QString& in) * pleasant for a human reader. Yes, this falls down in all kinds of * ways such as spaces within the tags, etc. */ -char* +QString strip_html(const utf_string* in) { #if 0 @@ -1267,17 +1269,18 @@ strip_html(const utf_string* in) // or just say we don't do that any more. QTextDocument doc; doc.setHtml(in->utfstring); - return xstrdup(CSTR(doc.toPlainText().simplified())); + return doc.toPlainText().simplified(); #else + if (!in->is_html) { + return in->utfstring; + } + char* out; char* instr; char tag[8]; unsigned short int taglen = 0; char* incopy = instr = xstrdup(in->utfstring); - if (!in->is_html) { - return instr; - } /* * We only shorten, so just dupe the input buf for space. */ @@ -1344,10 +1347,10 @@ strip_html(const utf_string* in) instr++; } *out++ = 0; - if (incopy) { - xfree(incopy); - } - return (outstring); + xfree(incopy); + QString rv(outstring); + xfree(outstring); + return rv; #endif } diff --git a/vcf.cc b/vcf.cc index c97b79f4d..fb62ab1b6 100644 --- a/vcf.cc +++ b/vcf.cc @@ -64,9 +64,7 @@ vcf_print_utf(const utf_string* s) return; } - char *string = strip_html(s); - QString stripped_html = string; - xfree(string); + QString stripped_html = strip_html(s); stripped_html.replace("\n", "\\n", Qt::CaseInsensitive); stripped_html.replace("

", "\\n", Qt::CaseInsensitive); -- 2.30.2